/********************************************************************* * * Copyright (C) 2002 Andrew Khan * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ package jxl.write.biff; import jxl.biff.FontRecord; import jxl.format.Font; import jxl.write.WriteException; /** * A writable Font record. This class intercepts any set accessor calls * and throws and exception if the Font is already initialized */ public class WritableFontRecord extends FontRecord { /** * Constructor, used when creating a new font for writing out. * * @param bold the bold indicator * @param ps the point size * @param us the underline style * @param fn the name * @param it italicised indicator * @param c the colour * @param ss the script style */ protected WritableFontRecord(String fn, int ps, int bold, boolean it, int us, int ci, int ss) { super(fn, ps, bold, it, us, ci, ss); } /** * Publicly available copy constructor * * @param the font to copy */ protected WritableFontRecord(Font f) { super(f); } /** * Sets the point size for this font, if the font hasn't been initialized * * @param pointSize the point size * @exception WriteException, if this font is already in use elsewhere */ protected void setPointSize(int pointSize) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontPointSize(pointSize); } /** * Sets the bold style for this font, if the font hasn't been initialized * * @param boldStyle the bold style * @exception WriteException, if this font is already in use elsewhere */ protected void setBoldStyle(int boldStyle) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontBoldStyle(boldStyle); } /** * Sets the italic indicator for this font, if the font hasn't been * initialized * * @param italic the italic flag * @exception WriteException, if this font is already in use elsewhere */ protected void setItalic(boolean italic) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontItalic(italic); } /** * Sets the underline style for this font, if the font hasn't been * initialized * * @param us the underline style * @exception WriteException, if this font is already in use elsewhere */ protected void setUnderlineStyle(int us) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontUnderlineStyle(us); } /** * Sets the colour for this font, if the font hasn't been * initialized * * @param colour the colour * @exception WriteException, if this font is already in use elsewhere */ protected void setColour(int colour) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontColour(colour); } /** * Sets the script style (eg. superscript, subscript) for this font, * if the font hasn't been initialized * * @param scriptStyle the colour * @exception WriteException, if this font is already in use elsewhere */ protected void setScriptStyle(int scriptStyle) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontScriptStyle(scriptStyle); } /** * Sets the struck out flag * * @param so TRUE if the font is struck out, false otherwise * @exception WriteException, if this font is already in use elsewhere */ protected void setStruckout(boolean os) throws WriteException { if (isInitialized()) { throw new JxlWriteException(JxlWriteException.formatInitialized); } super.setFontStruckout(os); } }